www.gusucode.com > PHP展示型企业网站模板米拓整站源码 1.0PHP源码程序 > PHP展示型企业网站模板米拓整站源码 1.0/MetInfozs_v1.0/MetInfozs_v1.0/include/stat/stat.php

    <?php
# MetInfo Enterprise Content Management System 
# Copyright (C) MetInfo Co.,Ltd (http://www.metinfo.cn). All rights reserved. 
require_once '../common.inc.php';
require_once 'global.func.php';
require_once ROOTPATH.'include/export.func.php';
if($type=='para' && $met_stat){
    if (!empty($_SERVER['HTTP_CLIENT_IP'])){
        $ip=$_SERVER['HTTP_CLIENT_IP'];
    }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }else{
        $ip=$_SERVER['REMOTE_ADDR'];
    }
	if($ip=='::1')$ip='127.0.0.1';
	$ips=explode(',',$ip);
	$ips=$ip[0];
	$kname = $met_mobileok ? '$':'jQuery';
	$metinfo = "
{$kname}.statcookie = function (name, value, options) { if (typeof value != 'undefined') { options = options || {}; if (value === null) { value = ''; options.expires = -1; } var expires = ''; if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { var date; if (typeof options.expires == 'number') { date = new Date(); date.setTime(date.getTime() + (options.expires * 1000)); } else { date = options.expires; } expires = '; expires=' + date.toUTCString(); } var path = options.path ? '; path=' + options.path : ''; var domain = options.domain ? '; domain=' + options.domain : ''; var secure = options.secure ? '; secure' : ''; document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); } else { var cookieValue = null; if (document.cookie && document.cookie != '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = {$kname}.trim(cookies[i]); if (cookie.substring(0, name.length + 1) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } };
{$kname}.myPlugin={Client:function(){var a={ie:0,webkit:0,gecko:0,opera:0,khtml:0};var b={se360:0,se:0,maxthon:0,qq:0,tt:0,theworld:0,cometbrowser:0,greenbrowser:0,ie:0,chrome:0,netscape:0,firefox:0,opera:0,safari:0,konq:0};var c=navigator.userAgent.toLowerCase();for(var d in a){if(typeof d==='string'){var e='gecko'===d?/rv:([\w.]+)/:RegExp(d+'[ \\/]([\\w.]+)');if(e.test(c)){a.version=window.opera?window.opera.version():RegExp.$1;a[d]=parseFloat(a.version);a.type=d;break}}};for(var d in b){if(typeof d==='string'){var e=null;switch(d){case'se360':e=/360se(?:[ \/]([\w.]+))?/;break;case'se':e=/se ([\w.]+)/;break;case'qq':e=/qqbrowser\/([\w.]+)/;break;case'tt':e=/tencenttraveler ([\w.]+)/;break;case'safari':e=/version\/([\w.]+)/;break;case'konq':e=/konqueror\/([\w.]+)/;break;case'netscape':e=/navigator\/([\w.]+)/;break;default:e=RegExp(d+'(?:[ \\/]([\\w.]+))?')};if(e.test(c)){b.metversion=window.opera?window.opera.version():RegExp.$1?RegExp.$1:'';b[d]=parseFloat(b.metversion);b.type=d;break}}};return{engine:a,metshell:b}}};
function broversion(){
	var bro={$kname}.myPlugin.Client();
		t=bro.metshell.type;
		v=bro.metshell.metversion;
		//bro=t=='ie'?t+v:t;
		if(t=='ie'&&v==''){
			e=/ie(?:[ \\/]([\\w.]+))?/;	
			v=e.exec(navigator.userAgent.toLowerCase())[1];
		}
		bro=t=='ie'?t+v:t;
		if(typeof window.external !='undefined' && typeof window.external.twGetRunPath!='unknown'&& typeof window.external.twGetRunPath!='undefined'){
			var r=external.twGetRunPath();
			if(r&&r.toLowerCase().indexOf('360se') > -1) bro='se360';
		}
		if(t=='ie'&&typeof external.addChannel=='undefined'){
			bro='se360';
		}
	return bro;
}
function forcook(cd,u){
	cd = cd.split(',');
	cdm=cd.length;
	for(var i=0;i < cdm;i++){
		if(u!='' && cd[i]==u)return false;
	}
	return true;
}
function metstat(){
	var url=encodeURIComponent(window.location.href),lurl=encodeURIComponent(document.referrer),cookm={$kname}.statcookie('recordurl'),myDate = new Date();
	var dt = Date.UTC(myDate.getFullYear(),myDate.getMonth(),myDate.getDay(),myDate.getHours(),myDate.getMinutes(),myDate.getSeconds())/1000;
	var xt = Date.UTC(myDate.getFullYear(),myDate.getMonth(),myDate.getDay(),23,59,59)/1000;
	var ctime = xt - dt;
	//if(!cookm || forcook(cookm,url)){
		var cks = cookm?cookm:'';
		var cok = cookm?1:0;
		{$kname}.statcookie('recordurl',cks+','+url, {expires: ctime, path: '/'});
		var murl ='{$u}include/stat/stat.php?type=submit';
			murl+='&ip={$ip}';
			murl+='&url='+url;
			murl+='&lurl='+lurl;
			murl+='&cook='+cok;
			murl+='&d={$d}';
			murl+='&browser='+broversion();
			murl+='&jsoncallback=?';
		//$.ajax({ type: 'POST', url: murl });
		{$kname}.getJSON(murl);
	//}
}
metstat();
			";
	echo $metinfo;
}
if($type=='submit' && $met_stat){
		$lurl=str_replace("\\",'',$lurl);
		$url=str_replace("\\",'',$url);
		$ip=delete($ip);
		$url=delete($url);
		$lurl=delete($lurl);
		$browser=delete($browser);
		$d=delete($d);
		if(stristr($lurl,'www.google')||stristr($lurl,'soso.')||stristr($lurl,'yahoo.')){
			$google_type="ok";
		}
		if((checkadd(1,$ip) && checkadd(2,$url) && $browser!='')){
			if(!$lurl || checkadd(2,$lurl)||$google_type=="ok"){
				$stime =strtotime(date("Y-m-d H:i:s"));
				/*访问的页面*/
				$d=explode('-',$d);
				$columnid=$d[0];
				$listid=$d[1];
				$lang=$d[2];
				$dizhi='';
				$dayquery ="INSERT INTO {$met_visit_day} SET
							ip           = '{$ip}',
							acctime      = '{$stime}',
							visitpage    = '{$url}',
							antepage     = '{$lurl}',
							columnid     = '{$columnid}',
							listid       = '{$listid}',
							browser      = '{$browser}',
							dizhi        = '{$dizhi}',
							network      = '{$network}',
							lang         = '{$lang}'";
				$dtime =strtotime(date("Y-m-d"));
				$visit=$db->get_one("SELECT * FROM {$met_visit_summary} WHERE stattime='{$dtime}'");
				$ztian0=strtotime(date("Y/m/d 00:00:00"));
				$ztian1=strtotime(date("Y/m/d 23:59:59"));
				$ipset=$ip;
				$met_stat_maxok=1;
				if($visit){
					$vsip=$db->get_one("SELECT * FROM {$met_visit_day} WHERE ip='{$ip}' and acctime >='{$ztian0}' and acctime<='{$ztian1}'"); 
					$pv = $visit['pv']+1;
					if($pv<$met_stat_max){
						$ip = $vsip?$visit['ip']:$visit['ip']+1;
						$alone = $vsip&&$cook?$visit['alone']:$visit['alone']+1;
						$parip = $vsip?0:1;
						$paral = $vsip&&$cook?0:1;
						$parttime = parttime(date('G'),$visit['parttime'],1,$parip,$paral);
						$query = "update {$met_visit_summary} SET
									pv         = '{$pv}',
									ip         = '{$ip}',
									alone      = '{$alone}',
									parttime   = '{$parttime}'
									where id = '{$visit['id']}'";
						$db->query($query);
					}else{
						$met_stat_maxok=0;
					}
				}else{
					$met='';for($i=0;$i<24;$i++)$met.= '|';
					$parttime = parttime(date('G'),$met,1,1,1);
					$query = "INSERT INTO {$met_visit_summary} SET
								pv         = '1',
								ip         = '1',
								alone      = '1',
								parttime   = '{$parttime}',
								stattime = '{$dtime}'";
					$db->query($query);
					if($met_stat_cr1)delet_estat_cr(1,$met_stat_cr1);
					if($met_stat_cr2)delet_estat_cr(2,$met_stat_cr2);
					if($met_stat_cr3)delet_estat_cr(3,$met_stat_cr3);
					if($met_stat_cr4)delet_estat_cr(4,$met_stat_cr4);
					if($met_stat_cr5)delet_estat_cr(5,$met_stat_cr5);
				}
				if($met_stat_maxok){
					$lurlkey=keytype($lurl);
					$lurlkey[0]=daddslashes($lurlkey[0]);
					$lurlkey[1]=daddslashes($lurlkey[1]);
					$lurlkeyk='';
					if(stristr($lurl,'www.google')||stristr($lurl,'yahoo.')){
						$lurlkeyk='无法获取';
						$lurlkey[0]=null;
					}
					if(($lurlkey && delete($lurlkey[0])!='') || $lurlkeyk=='无法获取'){
						
						$keyok=$db->get_one("SELECT * FROM {$met_visit_detail} WHERE name='{$lurlkey[0]}' and stattime = '{$dtime}' and type='1'");
						if($keyok){
							$keyok_remark=explode('|',$keyok['remark']);
							$remark='';
							$p=0;
							for($i=0;$i<count($keyok_remark);$i++){
								if($keyok_remark[$i]!=''){
									$rk=explode('-',$keyok_remark[$i]);
									if($rk[0]==$lurlkey[1]){
										$k=$rk[1]+1;
										$keyok_remark[$i]=$rk[0].'-'.$k;
										$p=1;
									}
									$remark.=$keyok_remark[$i].'|';
								}
							}
							if($p==0)$remark=$remark.'|'.$lurlkey[1].'-1|';
							$vsip=$db->get_one("SELECT * FROM {$met_visit_day} WHERE ip='{$ipset}' and acctime >='{$ztian0}' and acctime<='{$ztian1}' and antepage = '{$lurl}'"); 
							$pv = $keyok['pv']+1;
							$ip = !$vsip?$keyok['ip']+1:$keyok['ip'];
							$alone = $vsip&&$cook?$keyok['alone']:$keyok['alone']+1;
							$query = "update {$met_visit_detail} SET
										pv       = '{$pv}',
										ip       = '{$ip}',
										alone    = '{$alone}',
										remark   = '{$remark}',
										type     = '1'
										where id = '{$keyok['id']}'";
							$db->query($query);
						}else{
							if($lurlkey[0]!='' || $lurlkeyk=='无法获取'){						
									$lurlkey[1]=$lurlkey[1].'-1|';
									$query = "INSERT INTO {$met_visit_detail} SET
										name     = '{$lurlkey[0]}',
										pv       = '1',
										ip       = '1',
										alone    = '1',
										remark   = '{$lurlkey[1]}',
										type     = '1',
										stattime = '{$dtime}'";
									$db->query($query);
								
							}
						}
					}
					$urlok=$db->get_one("SELECT * FROM {$met_visit_detail} WHERE name='{$url}' and stattime = '{$dtime}' and type='2'");
					if($urlok){
						$vsip=$db->get_one("SELECT * FROM {$met_visit_day} WHERE ip='{$ipset}' and acctime >='{$ztian0}' and acctime<='{$ztian1}' and visitpage ='{$url}'"); 
						$pv = $urlok['pv']+1;
						$ip = !$vsip?$urlok['ip']+1:$urlok['ip'];
						$alone = $vsip&&$cook?$urlok['alone']:$urlok['alone']+1;
						$query = "update {$met_visit_detail} SET
									pv       = '{$pv}',
									ip       = '{$ip}',
									alone    = '{$alone}',
									remark   = '',
									type     = '2'
									where id = '{$urlok['id']}'";
						$db->query($query);
					}else{
						$query = "INSERT INTO {$met_visit_detail} SET
							name     = '{$url}',
							pv       = '1',
							ip       = '1',
							alone    = '1',
							remark   = '',
							type     = '2',
							columnid = '{$columnid}',
							listid   = '{$listid}',
							stattime = '{$dtime}',
							lang     = '{$lang}'";
						$db->query($query);
					}
					$lurlok=$db->get_one("SELECT * FROM {$met_visit_detail} WHERE name='{$lurl}' and stattime = '{$dtime}' and type='3'");
					if($lurlok){
						$vsip=$db->get_one("SELECT * FROM {$met_visit_day} WHERE ip='{$ipset}' and acctime >='{$ztian0}' and acctime<='{$ztian1}' and antepage ='{$lurl}'"); 
						$pv = $lurlok['pv']+1;
						$ip = !$vsip?$lurlok['ip']+1:$lurlok['ip'];
						$alone = $vsip&&$cook?$lurlok['alone']:$lurlok['alone']+1;
						$query = "update {$met_visit_detail} SET
									pv       = '{$pv}',
									ip       = '{$ip}',
									alone    = '{$alone}',
									remark   = '',
									type     = '3'
									where id = '{$lurlok['id']}'";
						$db->query($query);
					}else{
						$query = "INSERT INTO {$met_visit_detail} SET
							name     = '{$lurl}',
							pv       = '1',
							ip       = '1',
							alone    = '1',
							remark   = '',
							type     = '3',
							stattime = '{$dtime}'";
						$db->query($query);
					}
					$db->query($dayquery);
				}
				
			}
		}
}
# This program is an open source system, commercial use, please consciously to purchase commercial license.
# Copyright (C) MetInfo Co., Ltd. (http://www.metinfo.cn). All rights reserved.
?>